<template>
	<view class="sikpContainer">
		<button style="margin: 10px 20px;" @click="handleNavigateTo('/pages/Cart/Cart')">navigateTo - Cart页面</button>
		<button style="margin: 10px 20px;" @click="handleNavigateTo('/pages/User/User')">navigateTo - User页面</button>
		
		<button style="margin: 10px 20px;" @click="handleRedirectTo('/pages/Cart/Cart')">redirectTo - Cart页面</button>
		<button style="margin: 10px 20px;" @click="handleRedirectTo('/pages/User/User')">redirectTo - User页面</button>
		
		<button style="margin: 10px 20px;" @click="handleReLaunch('/pages/Home/Home')">reLaunch - Home页面</button>
		<button style="margin: 10px 20px;" @click="handleReLaunch('/pages/Order/Order')">reLaunch - Order页面</button>
		<button style="margin: 10px 20px;" @click="handleReLaunch('/pages/Cart/Cart')">reLaunch - Cart页面</button>
		<button style="margin: 10px 20px;" @click="handleReLaunch('/pages/User/User')">reLaunch - User页面</button>
		
		<button style="margin: 10px 20px;" @click="handleSwitchTab('/pages/Home/Home')">switchTab - Home页面</button>
		<button style="margin: 10px 20px;" @click="handleSwitchTab('/pages/Order/Order')">switchTab - Order页面</button>
		
		<button style="margin: 10px 20px;" @click="handleNavigateBack">后退</button>
	</view>
</template>

<script>
	export default {
		data() {
			return {
			}
		},
		onLoad() {

		},
		methods: {
			/**
			 * 保留当前页面，跳转到应用内的某个页面，使用uni.navigateBack可以返回到原页面。
			 * 注意：navigateTo不能跳转到tabBar页面
			 */
			handleNavigateTo(url) {
				uni.navigateTo({
					url: url
				});
			},
			
			/**
			 * 关闭当前页面，跳转到应用内的某个页面。
			 * 注意：redirectTo不能跳转到tabBar页面
			 */
			handleRedirectTo(url) {
				uni.redirectTo({
					url: url
				});
			},
			

			/**
			 * 关闭所有页面，打开到应用内的某个页面
			 */
			handleReLaunch(url) {
				uni.reLaunch({
					url: url
				});
			},
			
			
			/**
			 * 跳转到 tabBar 页面，并关闭其他所有非 tabBar 页面。
			 */
			handleSwitchTab(url) {
				uni.switchTab({
					url: url
				});
			},
			
			
			/**
			 * 关闭当前页面，返回上一页面或多级页面。可通过 getCurrentPages() 获取当前的页面栈，决定需要返回几层。
			 */
			handleNavigateBack(url) {
				// 关闭当前页面，返回上一页面或多级页面。可通过 getCurrentPages() 获取当前的页面栈，决定需要返回几层。
				let res = getCurrentPages()
				let tabBarUrlArr = ["pages/Home/Home", "pages/Order/Order"]
				let resArr = res.map(item => item.route)
				resArr = resArr.filter(item => !tabBarUrlArr.includes(item))
				if(resArr.length) {
					uni.navigateBack({
						delta: 1
					});
				} else {
					console.log("已经到顶层了")
				}
			}, 
		}
	}
</script>

<style scoped lang="scss">
</style>
